//
//  main.c
//  LZ78
//
//  Created by Stefano Pianelli on 19/04/12.
//  Copyright (c) 2012 __MyCompanyName__. All rights reserved.
//

#include "LZ78.h"
#include "bitfile.h"

int main (int argc, const char * argv[])
{
    //Controllo la sintassi di chiamata del programma
    if(argc != 4)
    {
        printf("Syntax error\nUsage is 'LZ78 -c | -d source_file destination_file'\n");
        exit(0);
    }
    if(strcmp(argv[1],"-c") != 0 && strcmp(argv[1],"-d") != 0)
    {
        printf("Selected option does not exist.\nUse -c option to compress or -d option to decompress\n");
        exit(0);
    }
    //Controllo se il file passato come sorgente esiste
    struct stat st;
    if(stat(argv[2],&st) != 0)
    {
        printf("Selected source file does not exist\n");
        exit(0);
    }
    
    BITFILE* SourceFile = bitfile_open((const char*)argv[2], 0);
    BITFILE* DestinationFile = bitfile_open((const char*)argv[3], 1);
    
    if(strcmp(argv[1],"-c") == 0)
    {
        //Selezionata opzione per compressione
        Encoder(SourceFile, DestinationFile);
    }
    else if(strcmp(argv[1],"-d") == 0)
            {
                //Selezionata opzione per decompressione
                Decoder(SourceFile, DestinationFile);
            }
    return 0;
}

